#pragma once

#include <windows.h>
#include <gdiplus.h>

#include "resource.h"

/**
* 运行时参数列表
*/
typedef struct {
	POINT Position; // 桌面图像显示位置
	Gdiplus::Image* LockDeskImage; // 锁定时桌面图像
	Gdiplus::Image* UnlockDeskImage; // 未锁定时桌面图像
	SHORT LockSet; // 当前锁定状态ID
	SHORT Display; // 桌面图像显示时间
	SHORT Timeout; // 自动开启/关闭时间
	NOTIFYICONDATA LockTrayIcon; // 锁定时托盘图标
	NOTIFYICONDATA UnlockTrayIcon; // 未锁定时托盘图标
	TCHAR* Section; // 播放音效时用
	UINT_PTR IDEvent; // 计时器ID
} RUNTIMEPARAMS;

// 绘制桌面图像与托盘图标
VOID DrawImageIcon(RUNTIMEPARAMS* pRuntimeParams, const SHORT wCurrentLockSet = 0);

// 从 INI 文件读取参数
VOID LoadParameters(CONST TCHAR* lpCurrentDirectory, RUNTIMEPARAMS* pRuntimeParams);

// 从 INI 文件读取语言
VOID LoadLanguage(CONST TCHAR* lpCurrentDirectory);

// 指示器窗口处理函数
INT_PTR CALLBACK IndicatorWndProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

// 0: 检查开机启动 1: 设置开机启动 2: 取消开机启动
BOOL CurrentVersionRun(UINT uMsg);